home *** CD-ROM | disk | FTP | other *** search
/ Borland JBuilder 6 / jbuilder6.iso / IBM VisualAge for Java Enterprise v4.0 Retail / ivj40 / setup / IDE.Cab / F76870_XMLDataBlock.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-04-25  |  2.3 KB  |  93 lines

  1. package com.ibm.ivb.jface.jfacex;
  2.  
  3. import com.ibm.ivb.jface.config.DataBlock;
  4. import com.ibm.xml.parser.Parent;
  5. import com.ibm.xml.parser.TXElement;
  6. import java.util.Enumeration;
  7. import java.util.Hashtable;
  8. import java.util.Vector;
  9. import org.w3c.dom.Node;
  10. import org.w3c.dom.NodeList;
  11.  
  12. public class XMLDataBlock extends TXElement implements DataBlock {
  13.    private Hashtable cache;
  14.    private static boolean parsingTime;
  15.  
  16.    public XMLDataBlock(String var1, String var2) {
  17.       super(var1);
  18.       this.setName(var2);
  19.    }
  20.  
  21.    private void buildCache() {
  22.       this.cache = new Hashtable();
  23.       NodeList var1 = ((Parent)this).getChildNodes();
  24.  
  25.       for(int var2 = 0; var2 < var1.getLength(); ++var2) {
  26.          Node var3 = var1.item(var2);
  27.          if (var3.getNodeType() == 1) {
  28.             TXElement var4 = (TXElement)var3;
  29.             String var5 = var4.getTagName();
  30.             String var6 = var4.getAttribute("name");
  31.             if (var5.equals("param")) {
  32.                this.cache.put(var6, var4.getAttribute("value"));
  33.             } else if (!var5.equals("plist")) {
  34.                String var12 = var5;
  35.                if (var6 != null) {
  36.                   var12 = var5 + "." + var6;
  37.                }
  38.  
  39.                this.cache.put(var12, var4);
  40.             } else {
  41.                Vector var7 = new Vector();
  42.                NodeList var8 = ((Parent)var4).getChildNodes();
  43.  
  44.                for(int var9 = 0; var9 < var1.getLength(); ++var9) {
  45.                   Node var10 = var8.item(var9);
  46.                   if (var10 instanceof TXElement) {
  47.                      TXElement var11 = (TXElement)var10;
  48.                      if (var11.getTagName().equals("item")) {
  49.                         var7.addElement(var11.getAttribute("value"));
  50.                      }
  51.                   }
  52.                }
  53.  
  54.                this.cache.put(var6, var7);
  55.             }
  56.          }
  57.       }
  58.  
  59.    }
  60.  
  61.    public String getName() {
  62.       return parsingTime ? super.getName() : ((TXElement)this).getAttribute("name");
  63.    }
  64.  
  65.    public Object getParameter(String var1) {
  66.       if (this.cache == null) {
  67.          this.buildCache();
  68.       }
  69.  
  70.       return this.cache.get(var1);
  71.    }
  72.  
  73.    public Enumeration getParameterNames() {
  74.       if (this.cache == null) {
  75.          this.buildCache();
  76.       }
  77.  
  78.       return this.cache.keys();
  79.    }
  80.  
  81.    public String getType() {
  82.       return ((TXElement)this).getTagName();
  83.    }
  84.  
  85.    public void setName(String var1) {
  86.       ((TXElement)this).setAttribute("name", var1);
  87.    }
  88.  
  89.    static void setParsingTime(boolean var0) {
  90.       parsingTime = var0;
  91.    }
  92. }
  93.